﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace webnew.BLL
{
    public class Sys_Role
    {
        private readonly webnew.DAL.Sys_RoleHelper dal = new webnew.DAL.Sys_RoleHelper();
        public Sys_Role()
        {
        
        }
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(webnew.Model.Sys_RoleInfo model)
        {
           // CheckModel(model);
            return dal.Add(model);
        }

        /// <summary>
        /// 更新一条数据
        /// </summary>
        public int Update(webnew.Model.Sys_RoleInfo model)
        {
            //CheckModel(model);
            return dal.Modify(model);
        }

        /// <summary>
        /// 根据ID删除一条数据
        /// </summary>
        public int del(string id)
        {
            return dal.Del(id);
        }

        /// <summary>
        /// 获得泛型数据列表（存在的所有数据）
        /// </summary>
        public List<webnew.Model.Sys_RoleInfo> GetList()
        {
            return dal.GetList();
        }

        /// <summary>
        /// 根据条件获得泛型数据列表
        /// </summary>
        public List<webnew.Model.Sys_RoleInfo> GetconList(string condition)
        {
            return dal.GetconList(condition);
        }

        /// <summary>
        /// 根据用户ID返回一个实体
        /// </summary>
        public webnew.Model.Sys_RoleInfo GetList(string id)
        {
            return dal.GetModel(id);
        }

        /// <summary>
        /// 取得数据行数,不建议直接使用此方法,请根据业务逻辑重写
        /// </summary>
        public int GetCount(string condition)
        {
            return dal.GetCount(condition);
        }

        /// <summary>
        /// 分页获取泛型数据列表,不建议直接使用此方法,请根据业务逻辑重写
        /// </summary>
        public List<webnew.Model.Sys_RoleInfo> GetPageList(string field,string condition, int pageSize, int pageIndex, string tbNames, string sortNames, bool sortType)
        {
            if (pageSize <= 0)
                throw new Exception("每页数据条数必须大于0。");

            if (pageIndex <= 0)
                throw new Exception("页索引必须大于0。");

            if (string.IsNullOrEmpty(sortNames))
                throw new Exception("排序字段不能为空。如果是默认排序，可以填写主键字段。");
            return dal.GetPageList(field,condition, pageSize, pageIndex, tbNames, sortNames, sortType);
        }

        #region 验证参数的有效性，请在此加入更多业务逻辑的验证

        /// <summary>
        /// 验证实体的有效性
        /// </summary>
        private void CheckModel(webnew.Model.Sys_RoleInfo model)
        {
            if (model == null)
                throw new ArgumentNullException("参数不能为空。");

            if (!Regex.IsMatch(model.rolename, @"^[\s\w\u4e00-\u9fa5]{1,50}$"))
                throw new ArgumentException("Name格式不正确。");
        }

        private void CheckConditionArgument(int ID)
        {
        }
        #endregion
        //////////////////////////////////////////////////////////
        /// <summary>
        /// 根据角色名 查找数据库是否存在该角色名
        /// </summary>
        /// <param name="CompName">输入的角色名</param>
        /// <returns>返回string "1"代表存在,"0"代表不存在</returns>
        public string ExistRolename(string rolename)
        {
            return dal.ExistRolename(rolename);
        }

        /// <summary>
        /// 根据选中的角色ID,判断是否能删除
        /// </summary>
        /// <param name="CompIds">选中的角色ID</param>
        /// <returns>返回false 表示不能删除;返回true 表示可以删除</returns>
        public bool isCanDel(string RoleIds)
        {
            return dal.isCanDel(RoleIds);
        }
    }
}
